home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
SGI Hot Mix 17
/
Hot Mix 17.iso
/
HM17_SGI
/
research
/
lib
/
primes.pro
< prev
next >
Wrap
Text File
|
1997-07-08
|
2KB
|
75 lines
;$Id: primes.pro,v 1.4 1997/01/15 03:11:50 ali Exp $
;
; Copyright (c) 1994-1997, Research Systems, Inc. All rights reserved.
; Unauthorized reproduction prohibited.
;+
; NAME:
; PRIMES
;
; PURPOSE:
; This function computes the first K prime numbers. The result is a
; K-element vector of type long integer.
;
; CATEGORY:
; Statistics.
;
; CALLING SEQUENCE:
; Result = Primes(K)
;
; INPUTS:
; K: A scalar of type integer or long integer that specifies the
; number of primes to be computed.
;
; EXAMPLE:
; Compute the first 25 prime numbers.
; result = primes(25)
;
; The result should be:
; [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, $
; 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]
;
; REFERENCE:
; PROBABILITY and STATISTICS for ENGINEERS and SCIENTISTS (3rd edition)
; Ronald E. Walpole & Raymond H. Myers
; ISBN 0-02-424170-9
;
; MODIFICATION HISTORY:
; Written by: GGS, RSI, November 1994
;-
function primes, k
;Compute the first k prime numbers.
prm = lonarr(k)
prm[0] = 2L
n = 3L
count = 1L
prm[count] = 3L
case2: count = count + 1L
while(count lt k) do begin
case1:
n = n + 2L
for ip = 1L, count do begin
q = n / prm[ip]
r = n mod prm[ip]
if r eq 0 then goto, case1 ;n is not prime.
if q le prm[ip] then begin ;n is prime.
prm[count] = n
goto, case2 ;compute next prime.
endif
endfor
endwhile
return, prm
prm = 0
end